package monpkg.rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Vector;

import monpkg.entities.Promotion;
import monpkg.entities.Student;

/**
 * @author Yannick Bouchot
 * @author Jonathan Romero   
 */
public interface IPromotionImpl extends Remote {
	/**
	 * Cette fonction appel a distance le constructeur newPromotion()
	 */
	Promotion newPromotion() throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode promotionCounter()
	 */
	int promotionCounter() throws RemoteException;

	/**
	 * Cette fonction appel a distance le constructeur newPromotion(String,
	 * String, String, String)
	 */
	public Promotion newPromotion(String Name, String code, String description,
			String date) throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode getId() permettant de
	 * recuperer l'id de la promotion
	 */
	public long getId() throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode setId(long id) permettant de
	 * definir l'id de la promotion
	 */
	public void setId(long id) throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode getName() permettant de
	 * recuperer le name de la promotion
	 */
	public String getName() throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode setName(String) permettant de
	 * définir le name de la promotion
	 */
	public void setName(String name) throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode getCode() permettant de
	 * recuperer le code de la promotion
	 */
	public String getCode() throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode setCode(String) permettant de
	 * définir le code de la promotion
	 */
	public void setCode(String code) throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode getDescription() permettant de
	 * recuperer la description de la promotion
	 */
	public String getDescription() throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode setDescrption(String)
	 * permettant de définir la description de la promotion
	 */
	public void setDescription(String description) throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode getDate() permettant de
	 * recuperer l'annee de la promotion
	 */
	public String getDate() throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode setDate(String) permettant de
	 * définir l'annee de la promotion
	 */
	public void setDate(String date) throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode getStudents() permettant de
	 * recuperer la liste des etudiants de la promotion
	 */
	public Vector<Student> getStudents() throws RemoteException;

	/**
	 * Cette fonction appel a distance la methode setStudents(Vector<Student>)
	 * permettant de définir la liste des etudiants de la promotion
	 */
	public void setStudents(Vector<Student> students) throws RemoteException;
}
